﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace ProjectManageSystemApi.Models
{
	public class CostApplyDto
	{
		public int Id { get; set; }
		
		/// <summary>
		/// 所属工程 id
		/// </summary>
		public int ProjectId { get; set; }

		/// <summary>
		/// 工程名称
		/// </summary>
        public string ProjectName { get; set; }

        /// <summary>
        /// 所属项目 id
        /// </summary>
        public int ItemId { get; set; }

		/// <summary>
		/// 工程项目名称
		/// </summary>
		public string ProjectItemName { get; set; }

		/// <summary>
		/// 申请人id
		/// </summary>
		public long UserId { get; set; }

		/// <summary>
		/// 费用名称
		/// </summary>
		public string CostName { get; set; }

		/// <summary>
		/// 费用描述
		/// </summary>
		public string CostDesc { get; set; }

		/// <summary>
		/// 报销金额
		/// </summary>
		public decimal CostAmount { get; set; }

		/// <summary>
		/// 项目数量
		/// </summary>
		public int? CostCount { get; set; }

		/// <summary>
		/// 费用类型 0:材料，1：薪酬，200: 其他
		/// </summary>
		public int CostTypeId { get; set; }

		/// <summary>
		/// 费用类型名称
		/// </summary>
		public string CostType { get; set; }

		/// <summary>
		/// 0:未支付，1:已支付
		/// </summary>
		public int PayState { get; set; }

		/// <summary>
		/// 申请人姓名
		/// </summary>
		public string UserName { get; set; }

		/// <summary>
		/// 创建时间
		/// </summary>
		public DateTime CreateTime { get; set; }

		/// <summary>
		/// 创建人Id
		/// </summary>
		public long CreateUserId { get; set; }

		/// <summary>
		/// 财务 审核理由 
		/// </summary>
		public string FinancerApproveReason { get; set; }

		/// <summary>
		/// 财务 审核时间
		/// </summary>
		public DateTime? FinancerApproveTime { get; set; }

		/// <summary>
		/// 财务 审核人
		/// </summary>
		public string FinancerApproveUser { get; set; }

		/// <summary>
		/// 经理审核时间
		/// </summary>
		public DateTime? ManagerApproveTime { get; set; }

		/// <summary>
		/// 经理 审核人
		/// </summary>
		public string ManagerApproveUser { get; set; }

		/// <summary>
		/// 经理 审核理由
		/// </summary>
		public string ManagerApproveReason { get; set; }

		/// <summary>
		/// 状态(0未审核,1审核通过,2审批拒绝)
		/// </summary>
		public sbyte State { get; set; }

		/// <summary>
		/// 报销图片
		/// </summary>
		public List<string> Images { get; set; } = new List<string>();
	}
}
